#ifndef GEOGRAPHICAL_OBJECT_H
#define GEOGRAPHICAL_OBJECT_H

#include <QPoint>
#include <QString>
#include <QVector>
#include "Zone.h"

class GO
{
    protected:
            QString GO_Name;
            QString GO_Type;
            QString GO_Notes;
            QPoint GO_Base_Point;
            QVector <QPoint> GO_Points; // точки контура объекта
            QVector <Zone> GO_Zones; // зоны (имеют смысл только для точечных объектов)
            int GO_Height;
            int GO_Width;
    public:
            GO();

            void Set_GO_Name(QString);
            QString Get_GO_Name();

            void Set_GO_Type(QString);
            QString Get_GO_Type();

            void Set_GO_Notes(QString);
            QString Get_GO_Notes();

            void Set_GO_Base_Point(QPoint);
            QPoint Get_GO_Base_Point();

            void Add_GO_Point(QPoint);   // добавить точку в контур объекта
            QPoint Return_GO_Point(int); // получить точку контура объекта
            int Return_GO_Points_Count();

            void Add_GO_Zone(Zone);      // добавить зону объекта
            Zone* Return_GO_Zone(int);   // получить зону объекта
            int Return_GO_Zones_Count(); // получить количество зон объекта

            void Set_GO_Height(int);
            int Get_GO_Height();

            void Set_GO_Width(int);
            int Get_GO_Width();
};
#endif // GEOGRAPHICAL_OBJECT_H
